import { DataSource } from 'typeorm';
import { ConfigService } from '@nestjs/config';
import { config } from 'dotenv';

// 加载环境变量
config({ path: `.env.${process.env.NODE_ENV || 'development'}` });

/**
 * TypeORM 数据源配置
 * 用于 CLI 命令（生成迁移、运行迁移等）
 *
 * 为什么需要这个文件？
 * - NestJS 的 TypeORM 配置用于运行时
 * - CLI 工具需要独立的配置文件
 */
export default new DataSource({
  type: 'mysql',
  host: process.env.DB_HOST || 'localhost',
  port: parseInt(process.env.DB_PORT || '3306', 10),
  username: process.env.DB_USERNAME || 'dmxk',
  password: process.env.DB_PASSWORD || 'dmxk123456',
  database: process.env.DB_DATABASE || 'dmxk_db',

  // 实体路径
  entities: ['src/**/*.entity.ts'],

  // 迁移文件路径
  migrations: ['src/database/migrations/*.ts'],

  // 其他配置
  synchronize: false, // ⚠️ 生产环境必须为 false
  logging: false,
  timezone: '+08:00',
  charset: 'utf8mb4',
});
